package q318_maxProduct;

public class Solution_1 {
    /*
    超时的解答
    思路

    然后对于每个单词 用一个int来存储其26个字母位置上是否有对应字母
    （注意 不需要过滤重复的字符 因为我们使用｜符号时不会除掉已经出现了对应位置字母的1）
    然后用(c1 & c2) == 0判断两个单词之间是否有重复字符
     */
    public int maxProduct(String[] words) {
        int maxX = 0;

        for (int i = 0; i < words.length; i++) {
            for (int j = i; j < words.length; j++) {

                int c1 = 0, c2 = 0;
                for (Character character : words[i].toCharArray())
                    c1 |= (1 << (character - 'a'));


                for (Character character : words[j].toCharArray()) {
                    c2 |= (1 << (character - 'a'));
                }
                if ((c1 & c2) == 0) maxX = Math.max(words[i].length() * words[j].length(), maxX);

            }
        }

        return maxX;
    }
}
